package com.example.xuwsh.myBatisPlus.core.interfaces;

import com.baomidou.mybatisplus.core.toolkit.support.SFunction;

import java.io.Serializable;
import java.util.Collection;

/**
 * @Author: xuwsh
 * @Date: 2023/09/20/19:13
 * @Description:
 */
public interface JuXiLambdaInterfaceWrapper<Children, T> extends Serializable {
    Children eqIfPresent(SFunction<T, ?> column, Object val);


    Children neIfPresent(SFunction<T, ?> column, Object val);


    Children gtIfPresent(SFunction<T, ?> column, Object val);


    Children geIfPresent(SFunction<T, ?> column, Object val);


    Children ltIfPresent(SFunction<T, ?> column, Object val);


    Children leIfPresent(SFunction<T, ?> column, Object val);


    Children betweenIfPresent(SFunction<T, ?> column, Object val, Object val1);


    Children notBetweenIfPresent(SFunction<T, ?> column, Object val, Object val1);


    Children likeIfPresent(SFunction<T, ?> column, Object val);

    Children noLikeIfPresent(SFunction<T, ?> column, Object val);

    Children likeLeftIfPresent(SFunction<T, ?> column, Object val);


    Children notLikeLeftIfPresent(SFunction<T, ?> column, Object val);


    Children likeRightIfPresent(SFunction<T, ?> column, Object val);

    Children notLikeRightIfPresent(SFunction<T, ?> column, Object val);


    Children isNullIfPresent(SFunction<T, ?> column, Object val);

    Children isNotNullIfPresent(SFunction<T, ?> column, Object val);


    Children inListIfPresent(SFunction<T, ?> column, Collection<?> coll);


    Children notInListIfPresent(SFunction<T, ?> column, Collection<?> coll);


    Children inArrayIfPresent(SFunction<T, ?> column, Object... values);


    Children notInArrayIfPresent(SFunction<T, ?> column, Object... values);
}
